/**
 * 扩展的类型定义
 */
import * as vscode from 'vscode';

/**
 * 扩展配置接口
 */
export interface ExtensionConfig {
    /** 是否启用扩展 */
    enabled: boolean;
    /** 高亮透明度 (0-1) */
    opacity: number;
    /** 节流延迟时间 (毫秒) */
    throttleDelay: number;
    /** 最大重试次数 */
    maxRetries: number;
    /** 是否启用调试日志 */
    enableDebugLog: boolean;
    /** 排除的函数名模式 */
    excludePatterns: string[];
}

/**
 * 函数信息接口
 */
export interface FunctionInfo {
    /** 函数名 */
    name: string;
    /** 在文档中的范围 */
    range: vscode.Range;
    /** 引用数量 */
    referenceCount: number;
    /** 是否为零引用 */
    isZeroReference: boolean;
}

/**
 * 分析结果接口
 */
export interface AnalysisResult {
    /** 分析的函数列表 */
    functions: FunctionInfo[];
    /** 零引用函数的范围 */
    zeroRefRanges: vscode.Range[];
    /** 是否有错误 */
    hasErrors: boolean;
    /** 错误信息 */
    errors: string[];
}

/**
 * 日志级别枚举
 */
export enum LogLevel {
    DEBUG = 'DEBUG',
    INFO = 'INFO',
    WARN = 'WARN',
    ERROR = 'ERROR'
}